﻿namespace UnityEditor
{
    using System;
    using System.Runtime.CompilerServices;
    using UnityEngine;

    public sealed class StaticOcclusionCulling
    {
        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        public static extern void Cancel();
        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        public static extern void Clear();
        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        public static extern bool Compute(float viewCellSize, float nearClipPlane, float farClipPlane, int memoryLimit, StaticOcclusionCullingMode mode);
        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        public static extern bool GenerateInBackground(float viewCellSize, float nearClipPlane, float farClipPlane, int memoryLimit, StaticOcclusionCullingMode mode);

        public static bool doesSceneHaveManualPortals { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static int dynamicObjectDataSize { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static bool isRunning { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static int staticObjectDataSize { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static int umbraDataSize { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }
    }
}

